home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs05.d81
/
filemv.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
196 lines
5 POKE56,160:CLR:OPEN15,8,15
6 PRINT"[147]"
7 PRINT"PRESS D FOR DIRECTORY."
8 PRINT"PRESS T TO CHANGE FILETYPE."
9 PRINT"PRESS F TO MAKE FILE FIRST IN DIRECTORY."
10 PRINT"PRESS U TO UNSCRATCH FILE."
11 PRINT"PRESS S TO DELETE FILE."
12 PRINT"PRESS R TO RENAME FILE."
13 PRINT"PRESS C TO COPY FILE."
15 PRINT"PRESS E TO EXIT."
16 GETA$:IFA$="D"THENGOSUB200:GOTO300
18 IFA$="F"THEN600
19 IFA$="S"THEN1000
20 IFA$="C"THEN2000
21 IFA$="E"THENCLOSE15:END
22 IFA$="U"THEN700
23 IFA$="T"THEN30
24 IFA$="R"THEN3000
25 GOTO16
30 F$="":INPUT"[147]FILENAME";F$
31 IFF$=""THEN30
32 OPEN8,8,8,"0:"+F$
35 GOSUB900:IFVTHEN40
37 GOTO7
40 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
45 GET#15,A$:S=ASC(A$+CHR$(0)):GET#15,A$:GET#15,A$:GET#15,A$
50 GET#15,A$:P=ASC(A$+CHR$(0)):T=18
55 CLOSE8:OPEN8,8,8,"#"
60 PRINT#15,"U1";8;0;T;S
65 PRINT#15,"B-P";8;P
70 GET#8,A$:B=ASC(A$+CHR$(0))
75 X=0:A=BAND7:IFA=1THENA$="SEQ"
85 IFA=2THENA$="PRG"
90 IFA=3THENA$="USR"
95 IFA=4THENA$="REL"
100 PRINT:PRINTA$;" FILE.":X=0:IFBAND128THEN105
101 Z$="":PRINT"IMPROPERLY CLOSED FILE.":INPUT"VALIDATE (Y/N)";Z$
102 IFZ$="Y"THENPRINT#15,"V0:":CLOSE8:GOTO6
103 IFZ$="N"THENCLOSE8:GOTO6
104 GOTO101
105 IF(BAND64)=0THEN110
106 Z$="":X=64:INPUT"LOCKED FILE. UNLOCK (Y/N)";Z$
107 IFZ$="Y"THENX=0:GOTO110
108 IFZ$="N"THEN110
109 GOTO106
110 IFA=4THENPRINT"FILETYPE CAN'T BE CHANGED.":GOTO150
115 IFA<>1THENPRINT"PRESS S TO CHANGE TO SEQ FILE."
120 IFA<>2THENPRINT"PRESS P TO CHANGE TO PRG FILE."
125 IFA<>3THENPRINT"PRESS U TO CHANGE TO USR FILE."
127 PRINT"PRESS RETURN FOR NO CHANGE."
130 GETZ$:IFZ$="S"THENW=1:GOTO150
132 IFZ$=CHR$(13)THENW=A:GOTO150
135 IFZ$="P"THENW=2:GOTO150
140 IFZ$="U"THENW=3:GOTO150
145 GOTO130
150 PRINT"PRESS L TO LOCK FILE."
152 PRINT"PRESS RETURN, OTHERWISE."
155 GETZ$:IFZ$="L"THENX=64:GOTO165
157 IFZ$=CHR$(13)THEN165
160 GOTO155
165 Y=X+W+128:PRINT#15,"B-P";8;P
170 PRINT#8,CHR$(Y);
175 PRINT#15,"U2";8;0;T;S
180 CLOSE8:GOTO6
200 POKE183,1:POKE187,2:POKE188,0
205 POKE2,36:POKE186,8:POKE185,0
210 POKE780,0:POKE781,0:POKE782,192:SYS65493:RETURN
300 PRINT"[147]":N=0:M=1:A=49154
302 N=N+1:IFN<>16THEN307
304 N=0:M=0:PRINT"PRESS SPACE BAR TO CONTINUE."
305 GETA$:IFA$=" "THENPRINT:PRINT:GOTO307
306 GOTO305
307 PRINTPEEK(A)+256*PEEK(A+1);
310 A=A+1
315 A=A+1:IFPEEK(A)THENPRINTCHR$(PEEK(A));:GOTO315
320 PRINT:A=A+3:IFPEEK(A-1)THEN302
325 PRINT"PRESS RETURN FOR MAIN MENU."
326 IFMTHEN330
327 PRINT"PRESS SPACE BAR FOR REPEAT."
330 GETA$:IFA$=CHR$(13)THEN340
332 IFA$=" "THEN300
335 GOTO330
340 GOTO6
400 GOSUB200:PRINT"CALCULATING # OF ACTIVE FILE BLOCKS.":A=49183:L=0:H=0
405 A=A+1:P=PEEK(A):L=P+L:A=A+1:Q=PEEK(A):H=Q+H
410 A=A+1:IFPEEK(A)THEN410
415 IFPEEK(A+2)=0THEN425
420 A=A+2:GOTO405
425 G=L+256*H:PRINT:PRINTP+256*Q;"FREE BLOCKS."
430 PRINT:PRINTG-P-256*Q;"ACTIVE FILE BLOCKS."
435 RETURN
500 PRINT"FILE IS NOT RECOVERABLE."
505 PRINT"IT WAS OVERWRITTEN BY SUBSEQUENT FILE."
525 PRINT"SCRATCHING FILE..."
530 PRINT#15,U$:PRINT"VALIDATING AGAIN..."
535 PRINT#15,"V0:":CLOSE8:GOTO7
600 F$="":PRINT"[147]FILENAME TO BE MOVED"
602 INPUT"TO TOP OF DIRECTORY";F$
603 IFF$=""THEN600
605 OPEN8,8,8,"0:"+F$
610 GOSUB900:IFVTHEN620
615 GOTO7
620 IFA=60THEN101
625 PRINT#15,"M-R";CHR$(144);CHR$(2);CHR$(5)
630 GET#15,A$:S=ASC(A$+CHR$(0)):GET#15,A$:GET#15,A$:GET#15,A$
635 GET#15,A$:P=ASC(A$+CHR$(0)):T=18
640 IFS=1ANDP=2THENPRINT"THAT FILE IS ALREADY AT TOP":CLOSE8:GOTO7
645 CLOSE8:OPEN8,8,8,"#"
650 PRINT#15,"U1";8;0;T;S
655 PRINT#15,"B-P";8;P
660 P$="":FORI=0TO29:GET#8,A$:A=ASC(A$+CHR$(0)):P$=P$+CHR$(A):NEXT
665 PRINT#15,"U1";8;0;T;1
670 PRINT#15,"B-P";8;2
675 Q$="":FORI=0TO29:GET#8,A$:A=ASC(A$+CHR$(0)):Q$=Q$+CHR$(A):NEXT
677 PRINT#15,"B-P";8;2
678 PRINT#8,P$;
680 PRINT#15,"U2";8;0;T;1
681 PRINT#15,"U1";8;0;T;S
682 PRINT#15,"B-P";8;P
683 PRINT#8,Q$;
685 PRINT#15,"U2";8;0;T;S
690 CLOSE8:GOTO6
700 OPEN8,8,8,"#":F=0:FF=0:J=1
705 SS=1
710 P=2:IFF=1THEN770
715 PRINT#15,"U1";8;0;18;SS
717 GET#8,A$:IFASC(A$+CHR$(0))=0THENF=1
718 GET#8,A$:S=ASC(A$+CHR$(0))
720 GET#8,A$:B=ASC(A$+CHR$(0))
722 GET#8,A$:IFASC(A$+CHR$(0))=0THEN710
725 IFBTHEN750
730 J=0:GOSUB800
735 IFFFTHENGOSUB400:IFG=664THENPRINT"FILE RECOVERED.":CLOSE8:GOTO7
740 IFFFTHEN500
750 IFP=226THENSS=S:GOTO710
755 P=P+32:PRINT#15,"B-P";8;P
760 GOTO720
770 CLOSE8:IFJTHENPRINT"[147]NO SCRATCHED FILES":GOTO7
780 GOTO6
800 PRINT"[147]"
805 PRINT#15,"B-P";8;P+3
810 FORI=1TO16:GET#8,A$:PRINTA$;:NEXT:PRINT,"DELETED FILE"
820 N$="":INPUT"UNSCRATCH (Y/N)";N$
825 IFN$="N"THENRETURN
830 IFN$="Y"THEN840
835 GOTO820
840 PRINT"PRESS P FOR PRG"
845 PRINT"PRESS S FOR SEQ"
850 PRINT"PRESS U FOR USR"
855 GETN$:IFN$="P"THENB=130:GOTO875
860 IFN$="U"THENB=131:GOTO875
865 IFN$="S"THENB=129:GOTO875
870 GOTO855
875 FF=1:PRINT#15,"B-P";8;P
880 PRINT#8,CHR$(B);
882 PRINT#15,"B-P";8;P+3
885 U$="S0:":FORI=0TO15:GET#8,A$:IFA$="[160]"THENI=15:GOTO888
887 A=ASC(A$+CHR$(0)):U$=U$+CHR$(A)
888 NEXT
890 PRINT#15,"U2";8;0;18;SS
892 PRINT"VALIDATING..."
895 PRINT#15,"V0:":RETURN
900 V=0:INPUT#15,A,B$,C,D
910 IFA<20ORA=60THENV=1:RETURN
920 PRINT:PRINTA,B$:PRINT:PRINTC,D:CLOSE8:RETURN
1000 F$="":INPUT"[147]FILENAME";F$
1010 IFF$=""THEN1000
1020 OPEN8,8,8,"0:"+F$
1030 GOSUB900:IFVTHEN1050
1040 GOTO7
1050 IFA=60THEN101
1060 CLOSE8:PRINT#15,"S0:";F$
1070 GOTO6
2000 F$="":INPUT"[147]FILENAME OF ORIGINAL";F$
2010 IFF$=""THEN2000
2015 OPEN8,8,8,"0:"+F$
2020 GOSUB900:IFVTHEN2030
2025 GOTO7
2030 IFA=60THEN101
2035 CLOSE8:FF$="":INPUT"FILENAME OF COPY TO BE MADE";FF$
2040 IFFF$=""THEN2035
2045 PRINT#15,"C0:";FF$;"=";F$
2050 GOSUB900:IFVTHEN6
2055 GOTO7
3000 F$="":INPUT"[147]OLD FILENAME";F$
3005 IFF$=""THEN3000
3010 OPEN8,8,8,"0:"+F$
3015 GOSUB900:IFVTHEN3030
3020 GOTO7
3030 IFA=60THEN101
3035 CLOSE8:FF$="":INPUT"NEW FILENAME";FF$
3040 IFFF$=""THEN3035
3045 PRINT#15,"R0:";FF$;"=";F$
3050 GOSUB900:IFVTHEN6
3055 GOTO7